import axios from "axios";
import router from '../router'
import { showNotify } from 'vant';
const tokenName = "auth-token";
//axios 实例对象
const serverUrl = 'http://localhost:8080';
//axios 实例对象
const instance = axios.create({
    baseURL: serverUrl, //
    timeout: 5000,
});
// const serverUrl = 'http://localhost:8080';
//axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    const token = localStorage.getItem("token");
    if (token) {//判空
        //将token值写入请求header中
        config.headers[tokenName] = token;
    }
    console.log("Axios 请求拦截器！config = ", config);
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    console.log("路由器：", router);
    // 对响应数据做点什么
    console.log("Axios 响应拦截器！response = ", response);
    /** 根据状态码，判断如何处理 */
    const { code, message } = response.data;
    switch (code) {
        case 200:
            //请求成功后，可以做哪些事情.....
            return response;
        // break;
        case 100005:    //未登录或登录超时
            showNotify({ type: 'danger', message: message });
            //未登录情况下，将 token 从 localStorage 中删除。
            localStorage.removeItem("token");
            router.push({ name: 'login' }); //跳转登录页面
            break;
        default:
            //其他错误则直接弹出异常
            showNotify({ type: 'danger', message });
            console.log('axios 响应拦截器，发生异常(default)：', message)
            break;
    }
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});
const getImageUrl = function (url) {
    return serverUrl + url
}
export { serverUrl, getImageUrl }
// export {toAddressView,toAfterSendView,toBackOrderView,toBeforePayView,toBuyView,toMyCommentView,toMytradeView,toSelldView,toSettingView}
export default instance;


